/**
 * 文  件  名：  IActivityInvitationDao.java
 * 工  程  名：  7You
 * 创建日期：  2013-10-13
 * 创建作者：  杨  强
 */
package com.qiyou.dao;

import java.sql.SQLException;
import java.util.List;

import com.qiyou.entity.ActivityInvitation;

/**
 * 活动邀请数据操作接口
 * 
 * @author 杨 强
 * 
 */
public interface IActivityInvitationDao {
    /**
     * 新增一个活动邀请
     * 
     * @param activityInvitation
     *            活动邀请
     * @return true成功，false失败
     * @throws SQLException
     *             数据库异常
     */
    public boolean doCreate(ActivityInvitation activityInvitation)
            throws SQLException;

    /**
     * 更新活动邀请状态
     * 
     * @param acID
     *            活动ID
     * @param userID
     *            用户ID
     * @param state
     *            状态，R为接受，Y为已读，N为未读
     * @return true成功，false失败
     * @throws SQLException
     *             数据库异常
     */
    public boolean doUpdate(long acID, String userID, String state)
            throws SQLException;

    /**
     * 删除某个活动邀请
     * 
     * @param acID
     *            活动ID
     * @param userID
     *            用户ID
     * @return true成功，false失败
     * @throws SQLException
     *             数据库异常
     */
    public boolean doDelete(long acID, String userID) throws SQLException;

    /**
     * 获取指定活动的邀请信息集合
     * 
     * @param acID
     *            活动ID
     * @return 邀请信息集合
     * @throws SQLException
     *             数据库异常
     */
    public List<ActivityInvitation> getInvitations(long acID)
            throws SQLException;

    /**
     * 获取指定用户的邀请信息集合
     * 
     * @param userID
     *            用户ID
     * @return 邀请信息结合
     * @throws SQLException
     *             数据库异常
     */
    public List<ActivityInvitation> getInvitations(String userID)
            throws SQLException;

    /**
     * 根据指定条件查询邀请信息集合
     * 
     * @param params
     *            查询条件，可为空
     *            <p>
     *            示例：
     *            <ol>
     *            <li>new
     *            String[]{"where `aiDate` > DATE('2003-12-31 01:02:03')"}<br>
     *            将查询在'2003-12-31 01:02:03'之后的活动邀请信息</li>
     *            </ol>
     *            </p>
     * @return 活动邀请信息集合
     * @throws SQLException
     *             数据库异常
     */
    public List<ActivityInvitation> getInvitations(Object... params)
            throws SQLException;
}
